#ifndef COURBE_H
#define COURBE_H

	#include <string>
	#include "Vecteur.h"
	#include "Point.h"
	#include <SDL.h>

	//#define LARGEUR 100
	//#define HAUTEUR 143

	class Courbe
	{
		private:
			int _degre;
			Vecteur * _vecteur;
		public:
			Courbe();
			Courbe(int d, Vecteur * v);
			Courbe(string chemin);

			int getDegre() const;
			Vecteur * getVecteur() const;

			Point calculPoint(double t) const;
			void boucleCasteljau(Vecteur * tab, int d, double t)const;
			Point * getEnsPt(int n) const;

            void elevation(Vecteur * tab)const;
			Courbe operator++(int useless) const;

			void diminution(Vecteur * tab)const;
			Courbe operator--(int useless) const;
			Courbe derivee() const;

			Point * getPtEnglobant();
			void translater(Vecteur v);
			void normaliser();

			void affiche()const;

			void sauvegarde(string chemin);
	};

#endif //COURBE_H
